package util

import (
	"fmt"
	"github.com/garyburd/redigo/redis"
	"math/rand"
	"sixGo/im/imstar/config"
	"time"
)

// GetServers todo 获取所有的im-server 服务
func GetServers() [][]byte {
	redisc, err := redis.Dial("tcp", config.Cfg.Redis.Addr)
	if err != nil {
		fmt.Println("err => ", err)
		return nil // 结束
	}

	sers, err := redis.ByteSlices(redisc.Do("smembers", config.Cfg.Keys.ImServer))
	if err != nil {
		fmt.Println("err => ", err)
		return nil
	}

	return sers
}

// GetRIMServer todo 获取所有im-server服务中的其中一个（随机）
func GetRIMServer() string {
	rand.Seed(time.Now().UnixNano()) //todo 随机  必须要有的
	sers := GetServers()
	if sers == nil {
		return ""
	}
	rNum := rand.Intn(len(sers)) // 获取随机数
	return string(sers[rNum])
}
